Existing solutions for wireless USB communication typically include buffer management mechanisms, e.g., based on a wireless USB host managing the buffer usage on an associated wireless USB device. Such host-controlled buffer management techniques may be inefficient as buffer space allocation directed by the host for one or more data transfers from the host to the device is generally static in nature for the course of data transfers. Moreover, typically, the host may not be provided any information relating the current state (e.g., updated available space) of the device buffer during a data transfer. Accordingly, the static and strict buffer allocation may hamper a constant flow of data from the host to the device and/or discourage a dynamic adjustment of the rate of data transfer, and as such, may result in less than maximum throughput for the USB data transfer.
For example, some of the existing buffer management solutions include the device to pre-allocate its buffer space on a static basis, and communicate the total buffer space (or the pre-allocated portion) and the number of outstanding data transfer requests that the device can handle to the host. The host may then ensure that the buffer space is not overridden or overburdened by the transmitted data. However, the pre-determined number of requests and pre-allocated buffer space result in limited over-the-air transfer efficiency as well as sub-optimal utilization of the buffer space on the device (which may indeed require some over-provisioning of the buffer space).